package adpter

import (
	"AcsGo/internal/handle"
	"AcsGo/logger"
	"fmt"
)

var lg = logger.InitLog()

// 根据前缀调用不同的服务
func ProcessInput(input string) (string, error) {

	prefix := input[:2]

	switch prefix {
	case "99":
		lg.Debug("调用HandleQuery")
		return handle.HandleQuery(input)
	case "93":
		lg.Debug("调用HandleLogin")
		return handle.HandleLogin(input)
	case "11":
		lg.Debug("调用HandleBookBorrow")
		return handle.HandlebookBorrow(input)
	case "09":
		lg.Debug("调用HandlebookRetrun")
		return handle.HandlebookRetrun(input)
	case "29":
		lg.Debug("调用BookInOutService")
		return handle.HandlebookRenewal(input)
	case "63":
		lg.Debug("调用HandleReaderInfo")
		return handle.HandleReaderInfo(input)
	case "17":
		lg.Debug("调用HandleBookInfo")
		return handle.HandleBookInfo(input)
	case "81":
		lg.Debug("调用HandleReaderRegister")
		return handle.HandleReaderRegister(input)
	case "91":
		lg.Debug("调用HandleReaderCheckDuplicate")
		return handle.HandleReaderCheckDuplicate(input)
	case "77":
		lg.Debug("调用HandleReaderPhoto")
		return handle.HandleReaderPhoto(input)
	case "85":
		lg.Debug("调用HandleReaderPhoto")
		return handle.HandleReaderInfoBy85(input)
	default:
		lg.Debug(fmt.Sprintf("unknown prefix: %s", prefix))
		return "", fmt.Errorf("invalid prefix: %s", prefix)
	}
}
